package com.example.demo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.entity.Comment;
import com.example.demo.vo.CommentVO;

public interface CommentService extends IService<Comment> {
    
    /**
     * 获取评论列表
     * @param postId 帖子ID
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 评论列表（包含用户信息）
     */
    IPage<CommentVO> getCommentList(Long postId, Integer pageNum, Integer pageSize);
    
    /**
     * 创建评论
     * @param comment 评论信息
     * @return 评论ID
     */
    Long createComment(Comment comment);
    
    /**
     * 回复评论
     * @param comment 回复信息
     * @return 回复ID
     */
    Long replyComment(Comment comment);
    
    /**
     * 删除评论
     * @param commentId 评论ID
     * @param userId 当前用户ID
     * @return 是否成功
     */
    boolean deleteComment(Long commentId, Long userId);
    
    /**
     * 点赞评论
     * @param commentId 评论ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean likeComment(Long commentId, Long userId);
    
    /**
     * 取消点赞评论
     * @param commentId 评论ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean unlikeComment(Long commentId, Long userId);
} 